A PLC is configured, for example, by a plurality of units such as a CPU (Central Processing Unit) unit that includes a microprocessor executing a control program, or an I/O (Input/Output) unit that manages signal input from an exterior switch or sensor and signal output to an exterior relay or actuator. The PLC executes a control operation while transferring data among these units through a PLC system bus and/or field network for each execution cycle of the control program.
For example, Patent Literature 1 (Japanese Patent Laid-open Publication No. 2003-29809) discloses a configuration in which a CPU unit of a PLC performs communication in order to transfer I/O data through an I/O bus (PLC system bus) between local I/O units, and also performs communication in order to transfer I/O data through a network (field network) between remote I/O slaves. Input/output between the local I/O units and input/output between the remote I/O slaves is performed in parallel. In the CPU unit, the I/O data is stored in a data memory. An arbiter is included which controls access to the data memory. In order to transfer the I/O data through the I/O bus, a PLC command executor accesses the data memory through the arbiter. Communication through the I/O bus is performed by the PLC command executor using an I/O bus I/F portion. In order to transfer the I/O data through the network, a remote I/O master accesses the data memory through the arbiter. Moreover, the data memory is also accessed when the PLC command executor executes a command (control program). In other words, the data memory is used as a shared memory and, while being mediated by the arbiter, identical data memory is accessed for data transfer through the I/O bus, data transfer through the network, and execution of the control program.